package cn.iocoder.yudao.module.erp.controller.admin.product.vo.product;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;

import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - ERP 产品库存资料 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpProductInventoryRespVO {
    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15672")
    private Long fid;

    @Schema(description = "物料状态", example = "2")
    private Long fstatus;

    @Schema(description = "禁用组织")
    private String ffreezeorgunit;

    @Schema(description = "物料", example = "25806")
    private String fmaterialid;

    @Schema(description = "是否受控")
    private Integer fiscontrol;

    @Schema(description = "安全库存")
    private BigDecimal fqtysafety;

    @Schema(description = "最低库存量")
    private BigDecimal fqtymin;

    @Schema(description = "最高库存量")
    private BigDecimal fqtymax;

    @Schema(description = "库存下限天数")
    private Long fdaysbottom;

    @Schema(description = "库存上限天数")
    private Long fdaystop;

    @Schema(description = "最大周转天数")
    private Long fdaysturnover;

    @Schema(description = "允许负库存")
    private Integer fisnegative;

    @Schema(description = "使用批号管理")
    private Long fisbatchno;

    @Schema(description = "使用序列号管理")
    private Long fissequenceno;

    @Schema(description = "批次管理")
    private Long fislotnumber;

    @Schema(description = "条码管理")
    private Long fisbarcode;

    @Schema(description = "最小包装量")
    private BigDecimal fqtyminpackage;

    @Schema(description = "ABC分类", example = "2")
    private Long fabctype;

    @Schema(description = "组合件")
    private Long fiscompages;

    @Schema(description = "出库优先方式")
    private Long fissueprioritymode;

    @Schema(description = "计量单位", example = "22205")
    private String funitid;

    @Schema(description = "暂存或者保存标记", example = "1")
    private Long feffectedstatus;

    @Schema(description = "保质期管理", example = "19560")
    private Long fisperiodvalid;

    @Schema(description = "保质期", example = "28282")
    private Long fperiodvalid;

    @Schema(description = "保质期单位")
    private Long fperiodvalidunit;

    @Schema(description = "入库失效提前期")
    private Long finwarehsahead;

    @Schema(description = "出库失效提前期")
    private Long foutwarehsahead;

    @Schema(description = "预警提前期")
    private Long fprepwarnahead;

    @Schema(description = "提前期单位")
    private Long faheadunit;

    @Schema(description = "库存计划员")
    private String finvplanner;

    @Schema(description = "计划方式")
    private Long fplanningmode;

    @Schema(description = "再订货点")
    private BigDecimal frebookqty;

    @Schema(description = "物料消耗速率")
    private BigDecimal fconsumespeed;

    @Schema(description = "采购提前期(天)")
    private Long fpurchasingaheaddate;

    @Schema(description = "批量政策")
    private Long fbatchpolicy;

    @Schema(description = "固定批量")
    private BigDecimal ffixationbatchqty;

    @Schema(description = "默认仓库", example = "14311")
    private String fdefaultwarehouseid;

    @Schema(description = "目标周转天数")
    private BigDecimal fdaysplanturnover;

    @Schema(description = "减价比例")
    private BigDecimal fcheaprate;

    @Schema(description = "是否检验")
    private Long fischeck;

    @Schema(description = "质检组织", example = "12156")
    private String fqualityorgid;

    @Schema(description = "工具费率")
    private BigDecimal ftoolrate;

    @Schema(description = "是否项目号")
    private Long fisprojectnumber;

    @Schema(description = "是否跟踪号")
    private Long fistrackingnumber;

    @Schema(description = "是否允许预留")
    private Long fisreservation;

    @Schema(description = "预留天数")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Long[] freservationdate;

    @Schema(description = "到期日计算方式")
    private Long fclosedatecalmode;

    @Schema(description = "预订类型", example = "2")
    private Long freservationtype;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;
}
